package com.chiaching.pms.repository;

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

import java.io.Serializable;
import java.util.Date;

/**
 * @author jiajing.he
 * @date 2021/7/19 下午2:42
 */
@Document(indexName = "OrderBaseRepository")
public class OrderBaseRepository implements Serializable {

    /**
     * 订单id
     */
    @Id
    private Long orderId;

    /**
     * 来源(客户端) site,backend,weixin,ikea
     */
    private String orderFrom;

    /**
     * 订单编号
     */
    private String orderNo;

    /**
     * 订单类目id
     */
    private Integer categoryId;

    /**
     * 订单服务类型id
     */
    private Integer serveTypeId;

    /**
     * 订单服务类型
     */
    private Integer serveType;

    /**
     * 业务线id
     */
    private Integer businessLineId;

    /**
     * 1级服务id
     */
    private Integer serveLevel1Id;

    /**
     * 服务id(多个逗号隔开)
     */
    private String serveIds;

    /**
     * 下单人用户id
     */
    private Long userId;

    /**
     * 下单人子用户id
     */
    private Long subUserId;

    /**
     * 订单状态:wait_offer-待报价,wait_appoint-待指派服务商,wait_pay-待托管费用,wait_serve_complete-待服务完成,serve_complete-服务完成,finish-订单完成,stop-终止
     */
    private String orderStatus;

    /**
     * 下单地区
     */
    private Integer regionId;

    /**
     * 三级地址
     */
    private Long thirdDivisionId;

    /**
     * 四级地址
     */
    private Long fourthDivisionId;

    /**
     * 指派状态(normal:直接指派,open:公开抛单,definite_price:一口价)
     */
    private String appointMethod;

    /**
     * 服务商类型(unknown未知 master个体服务商 enterprise:企业服务商)
     */
    private String spType;

    /**
     * 订单类型(inner_normal:站内普通订单 inner_monthly:站内月结订单)
     */
    private String orderType;

    /**
     * 删除状态（0否，1是）
     */
    private Integer isDelete;

    /**
     * 退款状态（refund_auditing：审核中-师傅、企业服务商，arbitration_auditing：客服仲裁中，pass：通过，refuse：拒绝，close：取消）
     */
    private String refundStatus;

    /**
     * 订单托管费用状态（unpaid：未付款，paid：已付款，delay：延迟付款）
     */
    private String orderPayStatus;

    /**
     * 服务完成时间（用户和师傅订单完工、总包结单时更新）
     */
    private Date serveWorkCompleteTime;

    /**
     * 交易完成时间
     */
    private Date tradeCompleteTime;

    /**
     * 第三方单号
     */
    private String thirdOrderNo;

    /**
     * 订单标签(rigorous_selection:严选)
     */
    private String orderLabel;

    /**
     * 订单全局id
     */
    private Long globalOrderTraceId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    private String orderChangeType;
}
